#ifndef NANE_PNGIMAGEENCODER_H
#   define  NANE_PNGIMAGEENCODER_H

#   include "nane/CodecSystem/Image/IImageCodecSystem.h"

namespace nane 
{
    class PNGImageEncoder
        : public IImageEncoder
    {
    public:
        PNGImageEncoder();
        ~PNGImageEncoder();
        
        bool Initialize( IOutput* _output );
        void Shutdown();
        
    public:
        uint32 Write( const byte* _data, uint32 _count );
        
        void SetWidth( uint32 _width );
        void SetHeight( uint32 _height );
        void SetFormat( EPixelFormat::raw_type _format );
        
    private:
        IOutput* m_output;
        uint32 m_width;
        uint32 m_height;
        EPixelFormat m_format;
    };
}   // namespace nane

#endif	// NANE_PNGIMAGEENCODER_H
